//https://www.luogu.com.cn/problem/P3370
//AC

// 编程语言  C++17 O2
// 代码长度  1.03KB
// 用时      414ms
// 内存     15.05MB

#include <iostream>
#include <cstring>
const int MAXS = 10010;
const int MAXL = 1510;
char All_strings[MAXS][MAXL];
using US = unsigned short;
US exist[65536];
const US EMPTY=65535;
int NUM_ALL_STRINGS=0;
US hash(char* s) {
	US v = 9453;
	while (*s) {
		v += (US)*s * (US)329;
		v ^= (US)0x5555;
		++s;
	}
	return v;
}

inline void init_exist() {
	for (US& i : exist) {
		i = 65535;
	}
}
void hash_and_check(int i) {
	char* s = All_strings[i];
	US ha = hash(s);
	if (exist[ha] == EMPTY) {
		exist[ha] = i;
		++NUM_ALL_STRINGS;
		return;
	}
	else if (strcmp(s, All_strings[exist[ha]]) == 0) { return; }
	else {
		++ha;
		while (exist[ha] != EMPTY) {
			if (strcmp(s, All_strings[exist[ha]]) == 0) { return; }
			++ha;
		}
		exist[ha] = i;
		++NUM_ALL_STRINGS;
		return;
	}
}

int main() {
	using namespace std;
	init_exist();
	int N;
	cin >> N;
	for(int i = 0; i < N; ++i) {
		cin >> All_strings[i];
		hash_and_check(i);
	}
	cout << NUM_ALL_STRINGS;
	return 0;
}